Skip to main content

Event Tracking

Event Tracking

Accurate event tracking is mandatory. It is how we ensure that rights holders are paid correctly for the use of their music. It also allows us to provide music engagement metrics in Clips Studio. You must send an event for each of the actions listed below.

Standard Event Parameters

All event tracking requests should include clientId and a timestamp. For detailed information about clientId requirements and best practices, see Client ID.

App Events

App Open Fired when a user opens your application.

POST /app-start

Request Body:

{  
"clientId": "YOUR_CLIENT_ID",
"timestamp": "2024-10-26T10:00:00Z",
"platform": "ios"
}

Response:

{
"appId": 12345
}

App Close

When a user closes your application.

POST /app-close

Request Body:

{  
"clientId": "YOUR_CLIENT_ID",
"timestamp": "2024-10-26T10:05:00Z"
}

Response:

No content provided in the response (204).

Play

When a music clip begins playback. This includes previews and plays of UGC containing a clip.

important

Looping clip playback requires direct approval from rights holders for your use case. If content automatically loops playback without explicit user interaction, each subsequent clip play must trigger its own request to the play endpoint.

POST /play

Request Body:

{  
"clientId": "YOUR_CLIENT_ID",
"timestamp": "2024-10-26T10:01:00Z",
"clipId": "123",
"method": "Stream",
"preview": "false",
"offline": "false"
}

Method Values:

  • "Stream" - Music playback isn't fixed (synced or muxed) into a single file with other media.
  • "Sync" - Synchronized with video content

Response:

This endpoint also returns a check for streaming rights, so if for any reason the music has lost rights for playback, this endpoint will respond to the request with a reason why there are no rights to play. If there are no rights to play the song associated with a clip, the response will say success: false, provide a human readable reason for the failure, and a failure code that is one of the following: AUTHENTICATION_FAILED, VALIDATION_ERROR, SERVICE_UNAVAILABLE, INTERNAL_ERROR, ACR_CLOUD_ERROR, ACR_CLOUD_CONFIG_ERROR, NO_STREAMING_RIGHTS, CLIP_NOT_FOUND, TRACK_NOT_FOUND, COLLECTION_NOT_FOUND, INVALID_PARAMETERS, MISSING_HEADERS, NETWORK_ERROR.

Track Play

When a full-length track begins playback. This happens while a user is auditioning sections of the full track for custom clipping.

POST /track-play

Request Body:

{  
"clientId": "YOUR_CLIENT_ID",
"timestamp": "2024-10-26T10:01:00Z", // Optional
"trackId": 789
}

Response:

No content provided in the response (204).

Add

When the user confirms selection of a clip for their content.

POST /add

Request Body:

{  
"clientId": "YOUR_CLIENT_ID",
"timestamp": "2024-10-26T10:02:00Z",
"clipId": 123,
"method": "Stream"
}

Method Values:

  • "Stream" - Music playback isn't fixed (synced or muxed) into a single file with other media.
  • "Sync" - Synchronized with video content

Response:

No content provided in the response (204).

Share

When a user shares their content containing a clip to an approved 3rd party platform (ex: social media).

POST /share

Request Body:

{  
"clientId": "YOUR_CLIENT_ID",
"timestamp": "2024-10-26T10:03:00Z",
"clipId": 123,
"platform": "instagram",
"shareUri": "app://content/abc"
}

Response:

No content provided in the response (204).

Download

When a user downloads the content to their device.

important

Allowing users to download content containing a Feed Clip requires direct approval from rights holders specific to your product's use case. Contact us if you're interested in this capability so we can arrange for approval.

POST /download

Request Body:

{
"clientId": "client123",
"clipId": 619462,
"appId": 1,
"credentialId": 1,
"country": "US",
"timestamp": "2025-02-25T00:00:00Z"
}

Response:

No content provided in the response (204).